SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
    
CREATE PROCEDURE [dbo].[SP_TMDOCC_GENE_Q03]        
/*------------------------------------------------------*/            
/*---Empresa               OFISIS S.A.                --*/            
/*---CLIEnte               COSMOS SAC                 --*/            
/*---Sistema               Tesoreria                  --*/            
/*---M½dulo                Empresa                    --*/            
/*---Programa              COBRANZA DEUDAS ANTIGUAS   --*/            
/*---Script                SP_TMDOCC_GENE_Q03.sql     --*/            
/*---Nombre SP             SP_TMDOCC_GENE_Q03         --*/            
/*---Desarrollado por      Carlos R. Marquez Escobar  --*/            
/*---Fecha Creaci½n        03/04/2009                 --*/            
/*---Base Datos            SQL        --*/            
/*---Versi½n               8.0                        --*/            
/*---Invoca a SP                                      --*/            
/*------------------------------------------------------*/            
/*------------------------------------------------------*/            
/*--- Drop Proc SP_TMDOCC_GENE_Q03                     --*/            
/*---Grant execute on SP_TMDOCC_GENE_Q03 to public         --*/             
/*---       
SET ANSI_NULLS ON      
GO      
SET QUOTED_IDENTIFIER OFF      
GO      
  SELECT GETDATE()    
Declare       
@ISCA_WHER_0001 VARCHAR(255),      
@ISCA_WHER_0002 VARCHAR(255),    
@ISTI_AUXI_CLIE TD_VC_001,    
@INNU_ANIO_EVAL INT,    
@IDFE_REPO  TD_DT_001,    
@IDFE_INIC_ANIO TD_DT_001      
      
Set @ISCA_WHER_0001 = "Where TMDOCC_GENE.CO_EMPR = '01' AND TMDOCC_GENE.CO_TIPO_DOCU NOT IN ('DEP', 'ANT', 'NCR') "      
-- Set @ISCA_WHER_0001 = "Where TMDOCC_GENE.CO_EMPR = '01' AND TMDOCC_GENE.CO_CLIE IN ( 'C0000000023') AND TMDOCC_GENE.CO_TIPO_DOCU NOT IN ('DEP', 'ANT')"      
Set @ISCA_WHER_0002 = ""      
Set @ISTI_AUXI_CLIE = 'C'      
SET @INNU_ANIO_EVAL = 0    
SET @IDFE_REPO = Convert(dateTime, Convert(Varchar(10), Getdate(), 103), 103)    
set @IDFE_INIC_ANIO = Convert(dateTime, '01/01/2009', 103)    
     
Execute SP_TMDOCC_GENE_Q03 @ISCA_WHER_0001, @ISCA_WHER_0002, @ISTI_AUXI_CLIE, @INNU_ANIO_EVAL, @IDFE_REPO, @IDFE_INIC_ANIO    
    
      
--*/            
/*------------------------------------------------------*/            
@ISCA_WHER_0001 VARCHAR(255),      
@ISCA_WHER_0002 VARCHAR(255),    
@ISTI_AUXI_CLIE TD_VC_001,    
@INNU_ANIO_EVAL INT,    
@IDFE_REPO  TD_DT_001,    
@IDFE_INIC_ANIO TD_DT_001      
AS    
CREATE TABLE #TWDOCC_GENE_Q02_1             
 ( CO_EMPR varchar(3) NULL,            
   CO_UNID_CONC varchar(3) NULL ,            
   CO_CLIE varchar(20) NULL ,            
    
   CO_TIPO_DOCU varchar(3) NULL ,            
   NU_DOCU_CLIE varchar(20) NULL,            
   FE_REPO datetime NULL,            
   FE_EMIS datetime NULL,            
   FE_VENC datetime NULL,        
   FE_DESP datetime NULL,            
   CO_TIPO_OPER varchar(3) NULL,            
   CO_MONE varchar(03) NULL,            
   FA_TIPO_CAMB numeric(9,4) NULL,            
   IM_CXCB numeric(16,4) DEFAULT 0,            
   IM_PAGO numeric(16,4) DEFAULT 0,            
   IM_CXCB_CONV numeric(16,4) DEFAULT 0,            
   IM_PAGO_CONV numeric(16,4) DEFAULT 0,            
   IM_CONV numeric(16,4) DEFAULT 0,            
   IM_CONV_TOTA numeric(16,4) DEFAULT 0,            
   TI_DETA varchar(1) NULL,      
      
   ST_SIGN varchar(1) NULL)            
    
CREATE TABLE #TWDOCC_GENE_Q02_2A           
 ( CO_EMPR varchar(3) NULL,            
   CO_UNID_CONC varchar(3) NULL ,            
   CO_CLIE varchar(20) NULL ,            
     
   CO_TIPO_DOCU varchar(3) NULL ,            
   NU_DOCU_CLIE varchar(20) NULL,            
   FE_REPO datetime NULL,            
   FE_EMIS datetime NULL,            
   FE_VENC datetime NULL,        
   FE_DESP datetime NULL,            
   CO_TIPO_OPER varchar(3) NULL,            
   CO_MONE varchar(03) NULL,            
   FA_TIPO_CAMB numeric(9,4) NULL,            
 NU_ANTI  INTEGER,      
   IM_CXCB numeric(16,4) DEFAULT 0,            
   IM_PAGO numeric(16,4) DEFAULT 0    
 )      
    
CREATE TABLE #TWDOCC_GENE_Q02_2B          
 ( CO_EMPR varchar(3) NULL,            
   CO_UNID_CONC varchar(3) NULL ,            
   CO_CLIE varchar(20) NULL ,       
     
   CO_TIPO_DOCU varchar(3) NULL ,            
   NU_DOCU_CLIE varchar(20) NULL,            
   FE_REPO datetime NULL,            
   FE_EMIS datetime NULL,            
   FE_VENC datetime NULL,        
   FE_DESP datetime NULL,            
   CO_TIPO_OPER varchar(3) NULL,            
   CO_MONE varchar(03) NULL,            
   FA_TIPO_CAMB numeric(9,4) NULL,            
 NU_ANTI  INTEGER,      
   IM_CXCB numeric(16,4) DEFAULT 0,            
   IM_PAGO numeric(16,4) DEFAULT 0    
 )      
            
CREATE TABLE #TWDOCC_GENE_Q02_3     
 ( CO_EMPR varchar(3) NULL,    
   NU_ANIO_EMIS varchar(4) NULL,    
   NU_PERI_EMIS varchar(2) NULL,    
       
   IM_DEU1_MNAC numeric(16,4) DEFAULT 0,            
   IM_DEU1_MEXT numeric(16,4) DEFAULT 0,            
    
   IM_DEU2_MNAC numeric(16,4) DEFAULT 0,            
   IM_DEU2_MEXT numeric(16,4) DEFAULT 0      
 )      
    
           
DECLARE             
@VSCA_WHER   VARCHAR(600),      
@VSST_ANTC   TD_VC_001,      
      
@OSTI_DOCU_LETR  TD_VC_003,      
@OSTI_DOCU_NCRE  TD_VC_003,      
@OSTI_DOCU_OCMP  TD_VC_003,      
@OSTI_DOCU_CHEQ  TD_VC_003,      
      
@VSFE_CANC TD_VC_010,      
      
@VNTO_DEUD_VENC  NUMERIC(16,4),      
@VNTO_DEUD_CONS  NUMERIC(16,4)      
      
      
EXEC SP_TTDOCU_CNTB_Q01 4, @OSTI_DOCU_NCRE OUTPUT            
EXEC SP_TTDOCU_CNTB_Q01 6, @OSTI_DOCU_LETR OUTPUT            
/* Devuelve el Tipo Documento CHEQUE */              
Exec SP_TTDOCU_CNTB_Q01 29, @OSTI_DOCU_CHEQ Output            
            
SELECT @VSCA_WHER = REPLACE(@ISCA_WHER_0001 + @ISCA_WHER_0002, "TMDOCC_GENE", "T4")            
           
            
IF PATINDEX("%ANT%", @VSCA_WHER) > 0            
    SELECT @VSST_ANTC = "S"            
ELSE            
    SELECT @VSST_ANTC = "N"            
    
--- fecha con 2 años menos    
SELECT @VSFE_CANC = Convert(Varchar(10), DATEADD(Year, -1 * @INNU_ANIO_EVAL, @IDFE_INIC_ANIO), 103)  -- 1 año menos    
          
-- TIPOS DE DETALLE(TI_DETA = "1" AL "7")            
--1.- DOCS EMITIDOS EN ESOS MESES                 
--2.- PAGOS BANCOS / CAJA            
--3.- APLICACIONES DE NCR A DOCUMENTOS            
--4.- CANJES            
--5.- RENOVACIONES            
--6.- APLICACION DE DOC. A ANTICIPOS            
--8.- ANTICIPOS( SIN APLICACIONES, SALDO = IMPORTE DEPOSITO )            
--7.- ANTICIPOS( CON APLICACION, SALDOS)            
            
--1.- TODOS LOS DOCUMENTOS EMITIDOS HASTA 1 AÑO ANTES DE LA FECHA INICIAL    
-- TMDOCC_GENE       
  EXECUTE( "INSERT INTO #TWDOCC_GENE_Q02_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_UNID_CONC, FE_REPO, FE_EMIS, FE_VENC,       
  FE_DESP, CO_TIPO_OPER, CO_MONE, FA_TIPO_CAMB, IM_CXCB, TI_DETA,      
 ST_SIGN)            
  Select T4.CO_EMPR, T4.CO_TIPO_DOCU , T4.NU_DOCU_CLIE , T4.CO_CLIE, T4.CO_UNID_CONC,            
   T4.FE_EMIS, T4.FE_EMIS, T4.FE_VENC,       
   T4.FE_DESP, T4.CO_TIPO_OPER, T4.CO_MONE, T4.FA_TIPO_CAMB,        ---Verif Fech Despacho      
   ( PatIndex(T2.ST_SIGN,'S') - PatIndex(T2.ST_SIGN,'N') ) * T4.IM_TOTA, '1',      
   T2.ST_SIGN      
  From  TMDOCC_GENE T4, TTDOCU_CNTB T2 "             
  + @VSCA_WHER + "            
  And T4.TI_DOCU_ANTC ='N'    
  And T4.FE_EMIS < Convert(Datetime, '" + @VSFE_CANC + "', 103)             
  And T4.CO_ESTA_DOCU != 'ANU'            
  AND T4.CO_TIPO_DOCU = T2.TI_DOCU")          
            
--2.- PAGOS BANCOS / CAJA            
  EXECUTE("INSERT INTO #TWDOCC_GENE_Q02_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_TIPO_OPER, FE_REPO, FE_EMIS,              
  CO_MONE, FA_TIPO_CAMB, IM_PAGO, TI_DETA)            
  Select T1.CO_EMPR, T1.TI_DOCU_ENTI, T1.NU_DOCU_ENTI, T1.CO_ENTI, T2.CO_TIPO_OPER, T2.FE_OPER,            
  T4.FE_EMIS, T4.CO_MONE, T2.FA_TIPO_CAMB,            
  ISNULL(( PatIndex(T4.ST_SIGN,'S') - PatIndex(T4.ST_SIGN,'N') ) *            
  ( PatIndex(T1.ST_CIER_DOCU, 'N') * T1.IM_CONV_DOCU +            
    PatIndex(T1.ST_CIER_DOCU, 'S') * T1.IM_SALD_DOCU ),0), '2'            
  From  TDMOVI_BANC T1, TCMOVI_BANC T2, #TWDOCC_GENE_Q02_1 T4      
  Where T1.TI_ENTI = '" + @ISTI_AUXI_CLIE + "'             
   And T2.TI_SITU != 'ANU'             
   And T2.TI_SITU != 'EXT'                
      
   And T1.CO_EMPR = T2.CO_EMPR              
   And T1.CO_UNID_CONC = T2.CO_UNID_CONC        
   And T1.CO_BANC = T2.CO_BANC              
   And T1.NU_CNTA_BANC  = T2.NU_CNTA_BANC              
   And T1.AA_BNCO = T2.AA_BNCO            
   And T1.MM_BNCO = T2.MM_BNCO             
   And T1.TI_MOVI_BANC  = T2.TI_MOVI_BANC             
   And T1.NU_COMP_BANC = T2.NU_COMP_BANC            
            
   And T1.CO_EMPR = T4.CO_EMPR            
   And T1.TI_DOCU_ENTI = T4.CO_TIPO_DOCU            
   And T1.NU_DOCU_ENTI = T4.NU_DOCU_CLIE            
   And T4.TI_DETA = '1' ")            
          
             
  EXECUTE("INSERT INTO #TWDOCC_GENE_Q02_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_TIPO_OPER, FE_REPO, FE_EMIS,         
  CO_MONE, FA_TIPO_CAMB, IM_PAGO, TI_DETA)            
  Select T1.CO_EMPR, T1.TI_DOCU_ENTI, T1.NU_DOCU_ENTI, T1.CO_ENTI, T2.CO_TIPO_OPER, T2.FE_OPER,            
  T4.FE_EMIS, T4.CO_MONE, T2.FA_TIPO_CAMB,            
  ISNULL(( PatIndex(T4.ST_SIGN,'S') - PatIndex(T4.ST_SIGN,'N') ) *            
  ( PatIndex(T1.ST_CIER_DOCU, 'N') * T1.IM_CONV_DOCU +            
    PatIndex(T1.ST_CIER_DOCU, 'S') * T1.IM_SALD_DOCU),0), '2'            
  From   TDMOVI_CAJA T1, TCMOVI_CAJA T2, #TWDOCC_GENE_Q02_1 T4      
  Where T1.TI_ENTI = '" + @ISTI_AUXI_CLIE + "'            
   And T2.TI_SITU != 'ANU'             
   And T2.TI_SITU != 'EXT'              
   And T1.CO_EMPR = T2.CO_EMPR              
   And T1.CO_CAJA = T2.CO_CAJA            
   And T1.AA_CAJA = T2.AA_CAJA            
   And T1.MM_CAJA = T2.MM_CAJA             
   And T1.TI_MOVI = T2.TI_MOVI            
   And T1.NU_COMP_CAJA = T2.NU_COMP_CAJA            
            
   And T1.CO_EMPR = T4.CO_EMPR            
   And T1.TI_DOCU_ENTI = T4.CO_TIPO_DOCU            
   And T1.NU_DOCU_ENTI = T4.NU_DOCU_CLIE      
   And T4.TI_DETA = '1'       
  ")      
            
      
-- PAGOS A CHEQUES DE LA TMDOCU_CLIE EN BANCOS, CON TDCHEQ_BANC            
 EXECUTE("INSERT INTO #TWDOCC_GENE_Q02_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, FE_REPO, FE_EMIS, FE_VENC,           
  CO_MONE, FA_TIPO_CAMB, IM_PAGO, TI_DETA)            
  Select T1.CO_EMPR, T4.CO_TIPO_DOCU, T1.NU_CHEQ, T1.CO_ENTI, T4.FE_EMIS,             
  T4.FE_EMIS, T4.FE_VENC, T4.CO_MONE, T2.FA_TIPO_CAMB,            
  ISNULL(( PatIndex(T4.ST_SIGN,'S') - PatIndex(T4.ST_SIGN,'N') ) * T1.IM_CHEQ,0), '2'            
  From  TDCHEQ_BANC T1, TCMOVI_BANC T2, #TWDOCC_GENE_Q02_1 T4      
  Where T1.TI_ENTI = '" + @ISTI_AUXI_CLIE + "'            
   And T2.TI_SITU = 'ACT'                
   And T1.CO_EMPR = T2.CO_EMPR              
   And T1.CO_BANC = T2.CO_BANC              
   And T1.NU_CNTA_BANC  = T2.NU_CNTA_BANC              
   And T1.AA_BNCO = T2.AA_BNCO            
   And T1.MM_BNCO = T2.MM_BNCO             
   And T1.TI_MOVI_BANC  = T2.TI_MOVI_BANC             
   And T1.NU_COMP_BANC = T2.NU_COMP_BANC            
            
   And T1.CO_EMPR = T4.CO_EMPR            
   And T4.CO_TIPO_DOCU  = '" + @OSTI_DOCU_CHEQ + "'          
   And T1.NU_CHEQ = T4.NU_DOCU_CLIE            
   And T4.TI_DETA = '1'      
 ")            
       
            
--3.- APLICACIONES DE NOTA DE CREDITOS A DOCUMENTOS            
-- DOCUMENTOS            
  EXECUTE("INSERT INTO #TWDOCC_GENE_Q02_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_TIPO_OPER, FE_REPO,             
  FE_EMIS, CO_MONE, FA_TIPO_CAMB, IM_PAGO, TI_DETA)            
  SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_CLIE, T2.CO_ENTI, T1.CO_TIPO_OPER, T1.FE_AMAR,            
  T4.FE_EMIS, T4.CO_MONE, T1.FA_TIPO_CAMB,             
 ISNULL((PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') ) *         
 (PatIndex(T2.ST_CIER_DOCU,'N') * ISNULL(T2.IM_COBR_CDES, 0) +           
  PatIndex(T2.ST_CIER_DOCU,'S') * T2.IM_SALD_CDES ),0), '3'          
  From   TCAMAR_NCCL T1 , TDAMAR_NCCL T2, #TWDOCC_GENE_Q02_1 T4, TTDOCU_CNTB T5      
  Where T1.CO_EMPR =   T4.CO_EMPR            
   And T1.TI_SITU = 'ACT'            
   And T2.CO_TIDO_DEST = T4.CO_TIPO_DOCU             
   And T2.NU_DOCU_DEST = T4.NU_DOCU_CLIE             
   And T1.CO_EMPR = T2.CO_EMPR            
   And T1.CO_UNID_CONC = T2.CO_UNID_CONC            
   And T1.NU_AMAR = T2.NU_AMAR              
   And T1.FE_AMAR = T2.FE_AMAR            
   And T2.CO_EMPR = T4.CO_EMPR         
   And T2.CO_ENTI = T4.CO_CLIE            
   And T2.CO_TIDO_DEST = T4.CO_TIPO_DOCU            
   And T2.NU_DOCU_DEST = T4.NU_DOCU_CLIE      
   And T4.TI_DETA = '1'            
      
   And T4.CO_TIPO_DOCU = T5.TI_DOCU            
   And T5.ST_DOCU_0004 = 'N' ")            
         
            
-- NOTAS DE CREDITO APLICADAS             
  EXECUTE("INSERT INTO #TWDOCC_GENE_Q02_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_TIPO_OPER, FE_REPO,             
  FE_EMIS, CO_MONE, FA_TIPO_CAMB, IM_PAGO, TI_DETA)            
  SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_CLIE, T2.CO_ENTI, T1.CO_TIPO_OPER, T1.FE_AMAR,            
  T4.FE_EMIS, T4.CO_MONE, T1.FA_TIPO_CAMB,            
 ISNULL( (PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') ) *         
  (PatIndex(T2.ST_CIER_DOCU,'N') * ISNULL(T2.IM_COBR_CORI, 0) +           
   PatIndex(T2.ST_CIER_DOCU,'S') * T2.IM_SALD_ORIG ),0), '3'          
  From   TCAMAR_NCCL T1 , TDAMAR_NCCL T2, #TWDOCC_GENE_Q02_1 T4, TTDOCU_CNTB T5      
  Where T1.CO_EMPR = T4.CO_EMPR            
   And T1.TI_SITU = 'ACT'            
   And T2.CO_TIDO_ORIG = T4.CO_TIPO_DOCU             
   And T2.NU_DOCU_ORIG = T4.NU_DOCU_CLIE             
   And T1.CO_EMPR = T2.CO_EMPR            
   And T1.CO_UNID_CONC = T2.CO_UNID_CONC            
   And T1.NU_AMAR = T2.NU_AMAR              
   And T1.FE_AMAR = T2.FE_AMAR            
   And T2.CO_EMPR = T4.CO_EMPR            
   And T2.CO_ENTI = T4.CO_CLIE            
   And T2.CO_TIDO_ORIG = T4.CO_TIPO_DOCU            
   And T2.NU_DOCU_ORIG = T4.NU_DOCU_CLIE            
   And T4.TI_DETA = '1'            
      
   And T4.CO_TIPO_DOCU = T5.TI_DOCU            
   And T5.ST_DOCU_0004 = 'S' ")            
           
            
--4.- CANJES            
-- SOLO MUESTRO LOS DOCUMENTOS QUE SE CANJEAN, NO LAS LETRAS GENERADAS            
  EXECUTE("INSERT INTO #TWDOCC_GENE_Q02_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_TIPO_OPER, FE_REPO,             
  FE_EMIS, CO_MONE, FA_TIPO_CAMB, IM_PAGO, TI_DETA)            
  SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_CLIE, T1.CO_CLIE, T1.CO_TIPO_OPER, T1.FE_CANJ,             
  T4.FE_EMIS, T4.CO_MONE, T1.FA_TIPO_CAMB,             
  ISNULL(( PatIndex(T4.ST_SIGN,'S') - PatIndex(T4.ST_SIGN,'N') ) *             
  ( PatIndex(T2.ST_CIER_DOCU,'N') * T2.IM_CANJ_MDOC +             
    PatIndex(T2.ST_CIER_DOCU,'S') * T2.IM_SALD_DOCU ),0), '4'            
  From  TCCANJ_CLIE T1 , TDCANJ_CLIE T2, #TWDOCC_GENE_Q02_1 T4      
  Where T1.CO_EMPR =   T4.CO_EMPR      
   And T1.TI_SITU != 'ANU'      
   And T1.TI_SITU != 'EXT'      
   And T1.CO_EMPR = T2.CO_EMPR      
   And T1.CO_UNID_CONC = T2.CO_UNID_CONC      
   And T1.CO_CLIE = T2.CO_CLIE      
   And T1.NU_CANJ = T2.NU_CANJ      
   And T1.FE_CANJ = T2.FE_CANJ      
   And T2.CO_EMPR = T4.CO_EMPR      
   And T2.CO_CLIE = T4.CO_CLIE      
   And T2.CO_TIPO_DOCU = T4.CO_TIPO_DOCU      
   And T2.NU_DOCU_CLIE = T4.NU_DOCU_CLIE      
   And T4.TI_DETA = '1'      
 ")            
            
--5.- RENOVACIONES            
-- SOLO MUESTRO LOS DOCUMENTOS QUE SE RENUEVAN, NO LAS LETRAS GENERADAS            
  EXECUTE("INSERT INTO #TWDOCC_GENE_Q02_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_TIPO_OPER, FE_REPO,             
  FE_EMIS, CO_MONE, FA_TIPO_CAMB, IM_PAGO, TI_DETA)            
  SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_CLIE, T1.CO_CLIE, T1.CO_TIPO_OPER, T1.FE_RENO,            
  T4.FE_EMIS, T4.CO_MONE, T1.FA_TIPO_CAMB,             
  ISNULL(( PatIndex(T4.ST_SIGN,'S') - PatIndex(T4.ST_SIGN,'N') ) *             
  ( PatIndex(T2.ST_CIER_DOCU,'N') * T2.IM_RENO_MDOC +             
    PatIndex(T2.ST_CIER_DOCU,'S') * T2.IM_SALD_DOCU ),0), '5'            
  From   TCRENO_CLIE T1 , TDRENO_CLIE T2, #TWDOCC_GENE_Q02_1 T4      
  Where T1.CO_EMPR =   T4.CO_EMPR            
   And T1.TI_SITU != 'ANU'           
   And T1.TI_SITU != 'EXT'          
   And T2.TI_SITU != 'ANU'            
   And T1.CO_EMPR = T2.CO_EMPR            
   And T1.CO_UNID_CONC = T2.CO_UNID_CONC              
   And T1.CO_CLIE = T2.CO_CLIE            
   And T1.NU_RENO = T2.NU_RENO            
   And T1.FE_RENO = T2.FE_RENO            
   And T2.CO_CLIE = T4.CO_CLIE            
And T2.CO_TIPO_DOCU = T4.CO_TIPO_DOCU             
   And T2.NU_DOCU_CLIE = T4.NU_DOCU_CLIE      
   And T4.TI_DETA = '1'      
  ")            
            
--6.- APLICACION DE DOCUMENTOS A ANTICIPOS            
-- SOLO MUESTRO LOS DOCUMENTOS QUE SE APLICAN            
  EXECUTE("INSERT INTO #TWDOCC_GENE_Q02_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_TIPO_OPER, FE_REPO,             
  FE_EMIS, CO_MONE, FA_TIPO_CAMB, IM_PAGO, TI_DETA)            
  SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_CLIE, T4.CO_CLIE, T1.CO_TIPO_OPER, T1.FE_AMAR,            
   T4.FE_EMIS, T4.CO_MONE, T1.FA_TIPO_CAMB,            
  ISNULL( PatIndex(T2.ST_CIER_DOCU, 'N')*            
   ( PatIndex(t4.ST_SIGN,'S') - PatIndex(t4.ST_SIGN,'N') ) * T2.IM_CONV_DOCU +            
  PatIndex(T2.ST_CIER_DOCU, 'S')*            
   ( PatIndex(t4.ST_SIGN,'S') - PatIndex(t4.ST_SIGN,'N') ) * T2.IM_SALD_DOCU,0), '6'            
  From   TCAMAR_ANTC T1 , TDAMAR_ANTC T2, #TWDOCC_GENE_Q02_1 T4      
  Where T1.TI_SITU != 'ANU'      
   And T1.TI_SITU != 'EXT'      
   And T1.CO_EMPR = T2.CO_EMPR             
   And T1.CO_UNID_CONC = T2.CO_UNID_CONC             
   And T1.NU_AMAR = T2.NU_AMAR         
   And T1.FE_AMAR = T2.FE_AMAR            
   And T2.CO_EMPR =   T4.CO_EMPR            
   And T2.TI_ENTI = '" + @ISTI_AUXI_CLIE + "'             
   And T2.TI_DOCU_ENTI = T4.CO_TIPO_DOCU             
   And T2.NU_DOCU_ENTI = T4.NU_DOCU_CLIE             
  ")      
            
--7.- ANTICIPOS - PAGOS BANCOS             
            
 EXECUTE("INSERT INTO #TWDOCC_GENE_Q02_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_TIPO_OPER, FE_REPO,             
  FE_EMIS, CO_MONE, FA_TIPO_CAMB, IM_PAGO, TI_DETA)            
  Select T4.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_CLIE, T4.CO_CLIE,            
  T4.CO_TIPO_OPER, T4.FE_EMIS, T4.FE_EMIS, T4.CO_MONE, T4.FA_TIPO_CAMB,             
 ISNULL(T4.IM_TOTA,0), '7'            
  From TMDOCC_GENE T4 "             
  + @VSCA_WHER + "            
  And   T4.TI_DOCU_ANTC = 'B'            
  And    T4.CO_ESTA_DOCU = 'ACT' ")            
            
--8.- ANTICIPOS - PAGOS BANCOS             
-- ANTICIPO CON APLICACION             
  EXECUTE("INSERT INTO #TWDOCC_GENE_Q02_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_TIPO_OPER, FE_REPO,            
  FE_EMIS, CO_MONE, FA_TIPO_CAMB, IM_CXCB, TI_DETA)            
  Select T4.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_CLIE, T4.CO_CLIE,            
  MAX(T4.CO_TIPO_OPER), T7.FE_AMAR, MAX(T4.FE_EMIS), T4.CO_MONE, MAX(T4.FA_TIPO_CAMB),             
  ISNULL(SUM(T7.IM_DETA_NEGA),0), '8'            
  From  TMDOCC_GENE T4, TCAMAR_ANTC T6, TDAMAR_ANTC T7 "             
  + @VSCA_WHER + "            
  And   T4.TI_DOCU_ANTC = 'B'            
  And    T4.CO_ESTA_DOCU = 'ACT'             
            
  AND  T6.TI_SITU = 'ACT'            
  AND  T4.CO_EMPR = T6.CO_EMPR            
  AND  T4.CO_CLAV = T6.CO_BANC+T6.NU_CNTA_BANC+T6.AA_BNCO+T6.MM_BNCO+T6.NU_COMP_BANC            
            
  AND  T6.CO_EMPR = T7.CO_EMPR             
   And T6.CO_UNID_CONC = T7.CO_UNID_CONC            
  AND   T6.NU_AMAR = T7.NU_AMAR            
  AND   T6.FE_AMAR = T7.FE_AMAR            
            
  GROUP BY T4.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_CLIE, T4.CO_CLIE,            
    T4.CO_MONE, T4.CO_CLAV, T7.FE_AMAR")            
      
/** ANTICIPOS CAJA **/             
  EXECUTE("INSERT INTO #TWDOCC_GENE_Q02_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, FE_REPO, FE_EMIS, FE_VENC,             
  CO_MONE, FA_TIPO_CAMB, IM_PAGO, TI_DETA)            
  Select T4.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_CLIE,             
  T4.CO_CLIE, T4.FE_EMIS, T4.FE_EMIS, T4.FE_EMIS,              
  T4.CO_MONE, T4.FA_TIPO_CAMB, ISNULL(T4.IM_TOTA,0), '7'            
  From  TMDOCC_GENE T4 "             
  + @VSCA_WHER + "            
  AND  T4.TI_DOCU_ANTC = 'C'            
  And   T4.CO_ESTA_DOCU = 'ACT' ")            
            
/** ANTICIPOS CAJA - APLICACION**/             
  EXECUTE("INSERT INTO #TWDOCC_GENE_Q02_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, FE_REPO, FE_EMIS, FE_VENC,             
  CO_MONE, FA_TIPO_CAMB, IM_CXCB, TI_DETA)            
  Select T4.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_CLIE, T4.CO_CLIE,             
  T7.FE_AMAR, MAX(T4.FE_EMIS), MAX(T4.FE_EMIS), T4.CO_MONE,            
  MAX(T4.FA_TIPO_CAMB), ISNULL(SUM(T7.IM_DETA_NEGA), 0), '8'            
  From  TMDOCC_GENE T4, TCAMAR_ANTC T6, TDAMAR_ANTC T7 "             
  + @VSCA_WHER + "            
  AND   T4.TI_DOCU_ANTC = 'C'            
  And    T4.CO_ESTA_DOCU = 'ACT'             
            
  AND  T6.TI_SITU = 'ACT'            
  AND  T4.CO_EMPR = T6.CO_EMPR             
  And    T4.CO_CLAV = T6.CO_CAJA+T6.AA_CAJA+T6.MM_CAJA+T6.NU_COMP_CAJA            
          
  AND  T6.CO_EMPR = T7.CO_EMPR             
   And T6.CO_UNID_CONC = T7.CO_UNID_CONC            
  AND   T6.NU_AMAR = T7.NU_AMAR             
  AND   T6.FE_AMAR = T7.FE_AMAR            
            
  GROUP BY T4.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_CLIE, T4.CO_CLIE, T4.CO_MONE, T4.CO_CLAV, T7.FE_AMAR")            
      
------------------------------------------------------------------            
----- convierto los importes a la moneda de presentacion            
------------------------------------------------------------------            
    
     
-- SE AGRUPA POR DOCUMENTO 1 M E S ANTES DE LA FECHA REPORTE DATEADD(Month, -1, @IDFE_REPO)    
 INSERT INTO #TWDOCC_GENE_Q02_2A            
 (CO_EMPR, CO_UNID_CONC, CO_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE, FE_REPO, FE_EMIS, FE_VENC, FE_DESP, CO_TIPO_OPER, CO_MONE,            
    FA_TIPO_CAMB, IM_CXCB, IM_PAGO,     
 NU_ANTI)    
 SELECT T1.CO_EMPR, MAX(ISNULL(T1.CO_UNID_CONC , '')), T1.CO_CLIE, T1.CO_TIPO_DOCU, T1.NU_DOCU_CLIE, MAX(FE_REPO), MIN(T1.FE_EMIS),             
   MAX(T1.FE_VENC), MAX(T1.FE_DESP), MAX(T1.CO_TIPO_OPER), MAX(T1.CO_MONE), MAX(T1.FA_TIPO_CAMB),             
   ISNULL(SUM(ISNULL(T1.IM_CXCB,0)),0), SUM(T1.IM_PAGO),     
   DATEDIFF(DAY, MIN(T1.FE_EMIS), @IDFE_REPO )      
 FROM  #TWDOCC_GENE_Q02_1 T1    
 WHERE t1.FE_REPO <= DATEADD(Month, -1, @IDFE_REPO) ---- USAR EN LA PANTALLA (DATO1)    
 GROUP BY T1.CO_EMPR, T1.CO_CLIE, T1.CO_TIPO_DOCU, T1.NU_DOCU_CLIE      
 HAVING ROUND(SUM(IsNull(T1.IM_CXCB,0)), 2) != ROUND(SUM(IsNull(T1.IM_PAGO,0)), 2)    
    
-- SE AGRUPA POR DOCUMENTO A LA FECHA REPORTE (@IDFE_REPO)    
 INSERT INTO #TWDOCC_GENE_Q02_2B             
 (CO_EMPR, CO_UNID_CONC, CO_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE, FE_REPO, FE_EMIS, FE_VENC, FE_DESP, CO_TIPO_OPER, CO_MONE,            
    FA_TIPO_CAMB, IM_CXCB, IM_PAGO,     
 NU_ANTI)    
 SELECT T1.CO_EMPR, MAX(ISNULL(T1.CO_UNID_CONC , '')), T1.CO_CLIE, T1.CO_TIPO_DOCU, T1.NU_DOCU_CLIE, MAX(FE_REPO), MIN(T1.FE_EMIS),             
   MAX(T1.FE_VENC), MAX(T1.FE_DESP), MAX(T1.CO_TIPO_OPER), MAX(T1.CO_MONE), MAX(T1.FA_TIPO_CAMB),             
   ISNULL(SUM(ISNULL(T1.IM_CXCB,0)),0), SUM(T1.IM_PAGO),     
   DATEDIFF(DAY, MIN(T1.FE_EMIS), @IDFE_REPO )      
 FROM  #TWDOCC_GENE_Q02_1 T1    
 WHERE t1.FE_REPO <= @IDFE_REPO    
 GROUP BY T1.CO_EMPR, T1.CO_CLIE, T1.CO_TIPO_DOCU, T1.NU_DOCU_CLIE      
 HAVING ROUND(SUM(IsNull(T1.IM_CXCB,0)), 2) != ROUND(SUM(IsNull(T1.IM_PAGO,0)), 2)    
--    
--select *    
--from #TWDOCC_GENE_Q02_2A    
--where    
--year(FE_EMIS) = 2008 and month(FE_EMIS) = 3    
    
INSERT INTO #TWDOCC_GENE_Q02_3     
 ( CO_EMPR,    
   NU_ANIO_EMIS,   NU_PERI_EMIS,    
       
   IM_DEU1_MNAC,   IM_DEU1_MEXT,    
   IM_DEU2_MNAC,   IM_DEU2_MEXT    
 )        
 SELECT T1.CO_EMPR,     
 Convert(varchar(4), Year(T1.FE_EMIS)) as NU_ANIO_EMIS, Convert(varchar(4), Month(T1.FE_EMIS)) as NU_PERI_EMIS,    
 Case t1.CO_MONE    
  When 'SOL' Then  IsNull(Sum(IsNull(T1.IM_CXCB,0) - IsNull(T1.IM_PAGO,0)),0)    
  Else 0.00    
 End,     
 Case t1.CO_MONE    
  When 'DOL' Then  IsNull(Sum(IsNull(T1.IM_CXCB,0) - IsNull(T1.IM_PAGO,0)),0)    
  Else 0.00    
 End,    
 0.00 , 0.00    
 FROM  #TWDOCC_GENE_Q02_2A T1      
 GROUP BY T1.CO_EMPR, Convert(varchar(4), Year(T1.FE_EMIS)), Convert(varchar(4), Month(T1.FE_EMIS)), t1.CO_MONE    
 HAVING ROUND(SUM(IsNull(T1.IM_CXCB,0)), 2) != ROUND(SUM(IsNull(T1.IM_PAGO,0)), 2)    
UNION ALL      
 SELECT T1.CO_EMPR,     
 Convert(varchar(4), Year(T1.FE_EMIS)) as NU_ANIO_EMIS, Convert(varchar(4), Month(T1.FE_EMIS)) as NU_PERI_EMIS,    
 0.00 , 0.00,    
 Case t1.CO_MONE    
  When 'SOL' Then  IsNull(Sum(IsNull(T1.IM_CXCB,0) - IsNull(T1.IM_PAGO,0)),0)    
  Else 0.00    
 End,     
 Case t1.CO_MONE    
  When 'DOL' Then  IsNull(Sum(IsNull(T1.IM_CXCB,0) - IsNull(T1.IM_PAGO,0)),0)    
  Else 0.00    
 End    
 FROM  #TWDOCC_GENE_Q02_2B T1      
 GROUP BY T1.CO_EMPR, Convert(varchar(4), Year(T1.FE_EMIS)), Convert(varchar(4), Month(T1.FE_EMIS)), t1.CO_MONE    
 HAVING ROUND(SUM(IsNull(T1.IM_CXCB,0)), 2) != ROUND(SUM(IsNull(T1.IM_PAGO,0)), 2)    
      
SELECT CO_EMPR,     
  Convert(Int, NU_ANIO_EMIS) NU_ANIO_EMIS,     
  convert(varchar(10),dbo.FU_NOMB_MESE(NU_PERI_EMIS) + ' - '+ Convert(VARCHAR(4), NU_ANIO_EMIS)) NU_PERI,    
  max(Convert(Int, NU_PERI_EMIS)) NU_PERI_EMIS,    
  Sum(IM_DEU1_MNAC) IM_DEU1_MNAC,     
  Sum(IM_DEU1_MEXT) IM_DEU1_MEXT,    
  Sum(IM_DEU2_MNAC) IM_DEU2_MNAC,     
  Sum(IM_DEU2_MEXT) IM_DEU2_MEXT,    
  Sum(IM_DEU1_MNAC - IM_DEU2_MNAC) IM_COBR_MNAC,     
  Sum(IM_DEU1_MEXT - IM_DEU2_MEXT) IM_COBR_MEXT    
FROM #TWDOCC_GENE_Q02_3    
GROUP BY CO_EMPR, Convert(Int,NU_ANIO_EMIS), convert(varchar(10),dbo.FU_NOMB_MESE(NU_PERI_EMIS) +' - ' + Convert(VARCHAR(4), NU_ANIO_EMIS))    
ORDER BY CO_EMPR, Convert(Int,NU_ANIO_EMIS), NU_PERI_EMIS    
         
RETURN            
/*------------------------- FIN ------------------------------ */      
  -- CS_TMDOCC_GENE_Q02 
GO
